require 'logger'

module ESI
  module Log
    def initialize_logger
      if ENV["test"] == "true"
        @logger = Logger.new("log/test.log")
        @request_logger = Logger.new(File.open("log/request-test.log","w"))
      else
        # TODO: log to a file!
        @request_logger = Logger.new(STDERR)
        @request_logger.formatter = proc{|s,t,p,m| STDERR.print m if s == 'DEBUG' }
        @logger = Logger.new(STDOUT)
      end
    end

    def log_request( msg )
      initialize_logger unless @request_logger
      @request_logger.debug( msg )
    end

    def log_debug( msg )
      initialize_logger unless @logger
      @logger.debug( msg )
    end

    def log_error( msg )
      initialize_logger unless @logger
      @logger.error( msg )
    end

    def log_info( msg )
      initialize_logger unless @logger
      @logger.info( msg )
    end

    def log_warn( msg )
      initialize_logger unless @logger
      @logger.warn( msg )
    end
  end
end
